package com.diaohaiwen.common.log;

import com.diaohaiwen.common.enums.LogTypeEnum;
import com.diaohaiwen.common.obj.log.BaseLog;
import com.diaohaiwen.common.obj.log.DbLog;
import com.diaohaiwen.common.obj.log.LogbackLog;
import com.diaohaiwen.common.obj.log.RequestLog;

/**
 * @author 刁海文
 * @Remark 日志传输接口
 * @since 2023/6/28 23:01
 */
public class BaseLogSend {


    /**
     * 发送HTTP日志
     *
     * @param log 日志
     */
    public void executeHTTP(RequestLog log) {
    }


    /**
     * 发送SQL日志
     *
     * @param log 日志
     */
    public void executeDB(DbLog log) {
    }

    /**
     * 发送logger日志
     *
     * @param log 日志
     */
    public <T> void executeLogback(LogbackLog log) {
    }

    /**
     * 发送服务日志
     *
     * @param log 日志
     */
    public <T> void executeAPP(BaseLog<T> log) {
    }

    /**
     * 发送MQ日志
     *
     * @param log 日志
     */
    public <T> void executeMQ(BaseLog<T> log) {
    }

    /**
     * 方法实现类型，由子类提供
     */
    public  LogTypeEnum logClassType() {
        return LogTypeEnum.DEFAULT;
    }
}
